package cn.edu.xjtu.work.hasPathSum;


import cn.edu.xjtu.Util.TreeNode.TreeNode;

/**
 * 112. 路径总和
 * 
 * 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ，判断该树中是否存在 根节点到叶子节点
 * 的路径，这条路径上所有节点值相加等于目标和 targetSum 。
 */
public class Solution {
  public boolean hasPathSum(TreeNode root, int targetSum) {
    if (root == null) {
      return false;
    }
    // 当targetSum-val==0,并且是叶节点时才返回true
    if (targetSum - root.val == 0 && root.left == null && root.right == null) {
      return true;
    }
    return hasPathSum(root.left, targetSum - root.val) || hasPathSum(root.right, targetSum - root.val);
  }
}
